package io.github.echarts.option.style;

import io.github.echarts.option.abstracts.AbstractOption;

/**
 * 坐标轴样式配置。
 */
public class AxisStyle extends AbstractOption {
    
    private static final long serialVersionUID = 1L;
    
    private String color;
    private Integer fontSize;
    private String fontWeight;
    private String fontFamily;
    private Integer rotate;
    private Boolean show;
    private Integer margin;
    private String position;
    
    /**
     * 构造一个新的坐标轴样式配置实例。
     */
    public AxisStyle() {
        // 默认构造函数
    }
    
    /**
     * 获取坐标轴文字颜色。
     *
     * @return 坐标轴文字颜色
     */
    public String getColor() {
        return color;
    }
    
    /**
     * 设置坐标轴文字颜色。
     *
     * @param color 坐标轴文字颜色
     * @return 当前配置实例，用于链式调用
     */
    public AxisStyle setColor(String color) {
        this.color = color;
        return this;
    }
    
    /**
     * 获取坐标轴文字字体大小。
     *
     * @return 坐标轴文字字体大小
     */
    public Integer getFontSize() {
        return fontSize;
    }
    
    /**
     * 设置坐标轴文字字体大小。
     *
     * @param fontSize 坐标轴文字字体大小
     * @return 当前配置实例，用于链式调用
     */
    public AxisStyle setFontSize(Integer fontSize) {
        this.fontSize = fontSize;
        return this;
    }
    
    /**
     * 获取坐标轴文字字体粗细。
     *
     * @return 坐标轴文字字体粗细
     */
    public String getFontWeight() {
        return fontWeight;
    }
    
    /**
     * 设置坐标轴文字字体粗细。
     *
     * @param fontWeight 坐标轴文字字体粗细
     * @return 当前配置实例，用于链式调用
     */
    public AxisStyle setFontWeight(String fontWeight) {
        this.fontWeight = fontWeight;
        return this;
    }
    
    /**
     * 获取坐标轴文字字体系列。
     *
     * @return 坐标轴文字字体系列
     */
    public String getFontFamily() {
        return fontFamily;
    }
    
    /**
     * 设置坐标轴文字字体系列。
     *
     * @param fontFamily 坐标轴文字字体系列
     * @return 当前配置实例，用于链式调用
     */
    public AxisStyle setFontFamily(String fontFamily) {
        this.fontFamily = fontFamily;
        return this;
    }
    
    /**
     * 获取坐标轴文字旋转角度。
     *
     * @return 坐标轴文字旋转角度
     */
    public Integer getRotate() {
        return rotate;
    }
    
    /**
     * 设置坐标轴文字旋转角度。
     *
     * @param rotate 坐标轴文字旋转角度
     * @return 当前配置实例，用于链式调用
     */
    public AxisStyle setRotate(Integer rotate) {
        this.rotate = rotate;
        return this;
    }
    
    /**
     * 是否显示坐标轴文字。
     *
     * @return 如果显示坐标轴文字则为true，否则为false
     */
    public Boolean getShow() {
        return show;
    }
    
    /**
     * 设置是否显示坐标轴文字。
     *
     * @param show 如果要显示坐标轴文字则为true，否则为false
     * @return 当前配置实例，用于链式调用
     */
    public AxisStyle setShow(Boolean show) {
        this.show = show;
        return this;
    }
    
    /**
     * 获取坐标轴文字与轴线之间的距离。
     *
     * @return 坐标轴文字与轴线之间的距离
     */
    public Integer getMargin() {
        return margin;
    }
    
    /**
     * 设置坐标轴文字与轴线之间的距离。
     *
     * @param margin 坐标轴文字与轴线之间的距离
     * @return 当前配置实例，用于链式调用
     */
    public AxisStyle setMargin(Integer margin) {
        this.margin = margin;
        return this;
    }
    
    /**
     * 获取坐标轴文字的位置。
     * 可选值：'start', 'middle', 'end'
     *
     * @return 坐标轴文字的位置
     */
    public String getPosition() {
        return position;
    }
    
    /**
     * 设置坐标轴文字的位置。
     *
     * @param position 坐标轴文字的位置，可选值：'start', 'middle', 'end'
     * @return 当前配置实例，用于链式调用
     */
    public AxisStyle setPosition(String position) {
        this.position = position;
        return this;
    }
} 